package br.unidocs.web.bean;

import java.util.ArrayList;
import java.util.List;

import javax.ejb.EJB;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;

import org.apache.log4j.Logger;

import br.unidocs.enums.EnumCSS;
import br.unidocs.modelo.entidade.Usuario;
import br.unidocs.servico.UsuarioEJB;
import br.unidocs.web.util.WebUtil;

public class ConfiguracaoUsuarioBackingBean {
	private static Logger log = Logger
			.getLogger(ConfiguracaoUsuarioBackingBean.class.getName());

	@EJB
	UsuarioEJB usuarioEjb;

	private EnumCSS cssSelecionado = EnumCSS.ORIGINAL;

	public List<SelectItem> getLayoutsCSS() {
		List<SelectItem> lista = new ArrayList<SelectItem>();
		for (EnumCSS css : EnumCSS.values()) {
			lista.add(new SelectItem(css, css.getDescricao()));
		}
		return lista;
	}

	public String aplicaCss() {
		log.debug("Usuário selecionou o CSS " + cssSelecionado);
		// grava a alteracao no banco, se houver usuario logado!
		Usuario u = WebUtil.obterUsuarioLogado();
		if (u != null) {
			u.setCssEscolhido(cssSelecionado);
			usuarioEjb.atualizaUsuario(u);
		}

		return "postback";
	}

	public EnumCSS getCssSelecionado() {
		return cssSelecionado;
	}

	public String getPathCssSelecionado() {
		FacesContext facesCtx = FacesContext.getCurrentInstance();
		String pathBase = facesCtx.getApplication().evaluateExpressionGet(
				facesCtx, "#{facesContext.externalContext.requestContextPath}",
				String.class);
		return pathBase + "/resources/css/" + cssSelecionado.getFilename();
	}

	public void setCssSelecionado(EnumCSS cssSelecionado) {
		this.cssSelecionado = cssSelecionado;
	}

	// public static void main(String args[]) {
	// System.out.println(EnumCSS.ORIGINAL.ordinal());
	//
	// for (EnumCSS x : EnumCSS.values()) {
	// System.out.println(x + " - " + x.getFilename());
	// }
	//
	// for (int i = 0; i < EnumCSS.values().length; i++) {
	// EnumCSS x = EnumCSS.values()[i];
	// System.out.println(x + " - " + x.getFilename());
	// }
	//
	// }
}
